//package cn.ithers.blog.service.impl;
//
//import cn.ithers.blog.dao.ArticleDao;
//import cn.ithers.blog.pojo.Article;
//import cn.ithers.blog.utils.Constants;
//import com.vladsch.flexmark.ext.jekyll.tag.JekyllTagExtension;
//import com.vladsch.flexmark.ext.tables.TablesExtension;
//import com.vladsch.flexmark.ext.toc.SimTocExtension;
//import com.vladsch.flexmark.ext.toc.TocExtension;
//import com.vladsch.flexmark.html.HtmlRenderer;
//import com.vladsch.flexmark.parser.Parser;
//import com.vladsch.flexmark.util.ast.Node;
//import com.vladsch.flexmark.util.data.MutableDataSet;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.solr.client.solrj.SolrClient;
//import org.apache.solr.common.SolrInputDocument;
//import org.jsoup.Jsoup;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.Arrays;
//import java.util.Date;
//import java.util.List;
//
///**
// * @Author: zhanghuan
// * @date: 2020/10/14 10:16
// * @description:
// */
//@Slf4j
//@Service
//public class SolrTestService {
//
//    @Autowired
//    private SolrClient solrClient;
//
//    @Autowired
//    private ArticleDao articleDao;
//
//    public void add() {
//        SolrInputDocument doc = new SolrInputDocument();
//        doc.addField("id", "764775764284407808");
//        doc.addField("blog_view_count", "10");
//        doc.addField("blog_title", "测试统计标签");
//        doc.addField("blog_content", "测试标签云");
//        doc.addField("blog_create_time", new Date());
//        doc.addField("blog_labels", "测试-博客-技术");
//        doc.addField("blog_url", "https://zhanghuan_pro.gitee.io");
//        doc.addField("blog_category_id", "760085033993109504");
//
//        try {
//            solrClient.add(doc);
//            solrClient.commit();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    /**
//     * 删除一条记录
//     */
//    public void delete() {
//        try {
//            //删除一条记录
//            solrClient.deleteById("764775764284407808");
//            solrClient.commit();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    /**
//     * 删除所有
//     */
//    public void deleteAll() {
//        try {
//            //删除所有
//            solrClient.deleteByQuery("*");
//            solrClient.commit();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    public void update() {
//        SolrInputDocument doc = new SolrInputDocument();
//        doc.addField("id", "764775764284407808");
//        doc.addField("blog_view_count", "10");
//        doc.addField("blog_title", "更新测试统计标签");
//        doc.addField("blog_content", "更新测试标签云");
//        doc.addField("blog_create_time", new Date());
//        doc.addField("blog_labels", "测试-博客");
//        doc.addField("blog_url", "https://zhanghuan_pro.gitee.io");
//        doc.addField("blog_category_id", "760085033993109504");
//
//        try {
//            solrClient.add(doc);
//            solrClient.commit();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * 导入所有
//     */
//    public void importAll() {
//        List<Article> all = articleDao.findAll();
//        for (Article article : all) {
//            SolrInputDocument doc = new SolrInputDocument();
//            doc.addField("id", article.getId());
//            doc.addField("blog_view_count", article.getViewCount());
//            doc.addField("blog_title", article.getTitle());
//            //对内容处理，去掉标签，提取全文本
//            //1.marksown写的内容， type = 1,富文本内容--> type = 0
//            //如果type =1 --> 转成html,
//            //再有html ---> 纯文本
//            //如果type = 0 -->纯文本
//            String type = article.getType();
//            String html;
//            if (Constants.Article.TYPE_MARKDOWN.equals(type)) {
//                //转成html
//                // markdown to html
//                MutableDataSet options = new MutableDataSet().set(Parser.EXTENSIONS, Arrays.asList(
//                        TablesExtension.create(),
//                        JekyllTagExtension.create(),
//                        TocExtension.create(),
//                        SimTocExtension.create()
//                ));
//                Parser parser = Parser.builder(options).build();
//                HtmlRenderer renderer = HtmlRenderer.builder(options).build();
//                Node document = parser.parse(article.getContent());
//                html = renderer.render(document);
//
//            } else {
//                html = article.getContent();
//            }
//            //不管原来是什么类型，到这里都变成了html,然后html -> 纯文本
//            String content = Jsoup.parse(html).text();
//            doc.addField("blog_content", content);
//            doc.addField("blog_create_time", article.getCreateTime());
//            doc.addField("blog_labels", article.getLabels());
//            doc.addField("blog_url", "https://zhanghuan_pro.gitee.io");
//            doc.addField("blog_category_id", article.getCategoryId());
//
//            try {
//                solrClient.add(doc);
//                solrClient.commit();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//    }
//}
